home *** CD-ROM | disk | FTP | other *** search
/ 3D Games - Real-time Rend…ng & Software Technology / 3D Games - Real-time Rendering & Software Technology.iso / flysdk / lib / render.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-12-12  |  3.0 KB  |  92 lines

  1. #define FLY_RENDER_NONE 0 
  2. #define FLY_RENDER_OPENGL 1 
  3.  
  4. class FLY_API render;
  5. class FLY_API renderGL;
  6.  
  7. class FLY_API render
  8. {
  9. public:
  10.     int type;
  11.  
  12.     virtual ~render()
  13.     { ; };
  14.  
  15.     virtual int CreateView()=0;
  16.     virtual void DeleteView()=0;
  17.     virtual void ResizeView(int sx,int sy)=0;
  18.     virtual void InitView()=0;
  19.     virtual void DrawView()=0;
  20.     virtual void SetFullScreen()=0;
  21. };
  22.  
  23. class FLY_API renderGL : public render
  24. {
  25. public:
  26.  
  27.     HGLRC m_hRC;
  28.     HDC hdc;
  29.  
  30.     renderGL() 
  31.     { type=FLY_RENDER_OPENGL; hdc=0; m_hRC=0; };
  32.     virtual ~renderGL()    
  33.     { DeleteView(); };
  34.  
  35.     int CreateView();
  36.     void DeleteView();
  37.     void ResizeView(int sx,int sy);
  38.     void InitView();
  39.     void DrawView();
  40.     void SetFullScreen();
  41.     void GetExtensions();
  42. };
  43.  
  44. FLY_API void init_render(int type);
  45. FLY_API void free_render();
  46.  
  47. extern FLY_API render *rend;
  48.  
  49. extern FLY_API PIXELFORMATDESCRIPTOR rendermodes[256];
  50. extern FLY_API int rendermodesindx[256];
  51. extern FLY_API DEVMODE videomodes[256];
  52. extern FLY_API int numvideomodes;
  53. extern FLY_API int numrendermodes;
  54. extern FLY_API int selvideomode;
  55. extern FLY_API int selrendermode;
  56.  
  57. extern FLY_API int ntextureunits;
  58. extern FLY_API int nhwlights;
  59. extern FLY_API int nregcomb;
  60. extern FLY_API int screen_sx,screen_sy;
  61. extern FLY_API int fullscreen;
  62. extern FLY_API int colorbits;
  63. extern FLY_API int stencilbits;
  64. extern FLY_API int depthbits;
  65. extern FLY_API int accumbits;
  66. extern FLY_API int alphabits;
  67. extern FLY_API float brightness;
  68. extern FLY_API RECT winrect;
  69.  
  70. /* ARB_multitexture command function pointers */
  71. extern FLY_API PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2iARB;
  72. extern FLY_API PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
  73. extern FLY_API PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB;
  74. extern FLY_API PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB;
  75. extern FLY_API PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB;
  76. extern FLY_API PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
  77.  
  78. /* NV_register_combiners command function pointers */
  79. extern FLY_API PFNGLCOMBINERPARAMETERFVNVPROC glCombinerParameterfvNV;
  80. extern FLY_API PFNGLCOMBINERPARAMETERIVNVPROC glCombinerParameterivNV;
  81. extern FLY_API PFNGLCOMBINERPARAMETERFNVPROC glCombinerParameterfNV;
  82. extern FLY_API PFNGLCOMBINERPARAMETERINVPROC glCombinerParameteriNV;
  83. extern FLY_API PFNGLCOMBINERINPUTNVPROC glCombinerInputNV;
  84. extern FLY_API PFNGLCOMBINEROUTPUTNVPROC glCombinerOutputNV;
  85. extern FLY_API PFNGLFINALCOMBINERINPUTNVPROC glFinalCombinerInputNV;
  86. extern FLY_API PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glGetCombinerInputParameterfvNV;
  87. extern FLY_API PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glGetCombinerInputParameterivNV;
  88. extern FLY_API PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glGetCombinerOutputParameterfvNV;
  89. extern FLY_API PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glGetCombinerOutputParameterivNV;
  90. extern FLY_API PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glGetFinalCombinerInputfvNV;
  91. extern FLY_API PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glGetFinalCombinerInputivNV;
  92.